A data storage system stores information on behalf of one or more host computers. To store new information, some data storage systems allocate slices from a storage pool. Each slice is an increment of storage space such as 256 MB or 1 GB and may be derived from a portion of a logical unit of storage LUN such as a Flare LUN (FLU) or a Redundant Array of Independent Disks (RAID) group.
Software running on such a data storage system may replenish the storage pool by routinely deleting expired snapshots. Along these lines, when the software detects that a storage pool has reached a specified level of consumption (e.g., 90%), the software may automatically remove any expired snapshot data and reclaim the slices used by that snapshot data. Similarly, when the software detects that a specified percentage of the storage pool has been filled with snapshot data (e.g., 15%), the software may automatically remove any expired snapshot data and reclaim the slices used by that snapshot data.